package com.reflect.demo01;

public class Test {
    public static void main(String[] args) throws ClassNotFoundException {
        System.out.println("反射学习");
        System.out.println("通过类 class 获取 Class 实例的三种方式");
        // 方式一 通过静态方式获取获取
        Class<String> cls = String.class;
        // 方式二 当我们有了一个实例化对象，通过getClass()方法来获取
        String hello = "hello";
        Class h = hello.getClass();

        Student student = new Student();
        Class s = student.getClass();
        // 方式三 通过一个class类的完整类名，通过静态方法 Class.forName() 获取; 但是需要抛出一个 检查型异常 ClassNotFoundException 接管处理
        Class clStudent = Class.forName("com.reflect.demo01.Student");
        System.out.println(clStudent);

        System.out.println("=========");
        Class s1 = student.getClass();
        Class s2= student.getClass();
        Class s3= student.getClass();
        Class s4= student.getClass();
        System.out.println(s1.hashCode()); // 608188624
        System.out.println(s2.hashCode()); // 608188624
        System.out.println(s3.hashCode()); // 608188624
        System.out.println(s4.hashCode()); // 608188624
    }
}
